home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / actionrp / lrogue0.1 / lrogue0 / rogue / main.c < prev    next >
C/C++ Source or Header  |  1992-09-28  |  1KB  |  65 lines

  1. /*
  2.  * main.c
  3.  *
  4.  * This source herein may be modified and/or distributed by anybody who
  5.  * so desires, with the following restrictions:
  6.  *    1.)  No portion of this notice shall be removed.
  7.  *    2.)  Credit shall not be taken for the creation of this source.
  8.  *    3.)  This code is not to be traded, sold, or used for personal
  9.  *         gain or profit.
  10.  *
  11.  */
  12.  
  13. #include "rogue.h"
  14.  
  15. extern short party_room;
  16.  
  17. int saved_uid= -1;
  18. int true_uid= -1;
  19.  
  20. void turn_into_games()
  21. {
  22.     if(setuid(saved_uid)==-1)
  23.     {
  24.         perror("setuid(restore)");
  25.         clean_up("");
  26.     }
  27. }
  28.  
  29. void turn_into_user()
  30. {
  31.     if(setuid(true_uid)==-1)
  32.     {
  33.         perror("setuid(restore)");
  34.         clean_up("");
  35.     }
  36. }
  37.  
  38. main(argc, argv)
  39. int argc;
  40. char *argv[];
  41. {
  42.     /* Save the setuid we have got, then turn back into the player */
  43.     saved_uid=geteuid();
  44.     setuid(true_uid=getuid());
  45.  
  46.     if (init(argc, argv)) {        /* restored game */
  47.         goto PL;
  48.     }
  49.  
  50.     for (;;) {
  51.         clear_level();
  52.         make_level();
  53.         put_objects();
  54.         put_stairs();
  55.         add_traps();
  56.         put_mons();
  57.         put_player(party_room);
  58.         print_stats(STAT_ALL);
  59. PL:        
  60.         play_level();
  61.         free_stuff(&level_objects);
  62.         free_stuff(&level_monsters);
  63.     }
  64. }
  65.